package client.printing;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class AllPrinting extends JFrame {
    private JButton queryOrderButton;
    private JButton queryMaterialButton;
    
    public AllPrinting() {
        setTitle("统计与打印管理");
        setSize(800, 600); // 修改窗口大小为 800x600
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        
        // 获取屏幕尺寸并设置窗口居中
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setLocation((screenSize.width - getWidth()) / 2, (screenSize.height - getHeight()) / 2);
        
        // 设置面板，使用 BoxLayout 实现垂直居中
        JPanel mainPanel = new JPanel();
        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
        mainPanel.setBackground(Color.decode("#E0F7FA")); // 设置面板背景颜色为淡蓝色
        
        // 创建标题标签
        JLabel titleLabel = new JLabel("统计与打印管理");
        titleLabel.setFont(new Font("微软雅黑", Font.BOLD, 36)); // 设置字体样式
        titleLabel.setForeground(Color.BLACK); // 设置字体颜色
        titleLabel.setAlignmentX(Component.CENTER_ALIGNMENT); // 标题居中
        
        // 创建查询订单按钮（椭圆形按钮）
        queryOrderButton = createOvalButton("月份查询订单");
        queryOrderButton.setAlignmentX(Component.CENTER_ALIGNMENT); // 按钮居中
        
        // 创建物料查询按钮（椭圆形按钮）
        queryMaterialButton = createOvalButton("年份查询物料");
        queryMaterialButton.setAlignmentX(Component.CENTER_ALIGNMENT); // 按钮居中
        
        // 添加组件到主面板
        mainPanel.add(Box.createVerticalGlue()); // 添加垂直填充，保持组件在中间
        mainPanel.add(titleLabel);
        mainPanel.add(Box.createRigidArea(new Dimension(0, 50))); // 标题与按钮之间的间距
        mainPanel.add(queryOrderButton);
        mainPanel.add(Box.createRigidArea(new Dimension(0, 20))); // 按钮之间的间距
        mainPanel.add(queryMaterialButton);
        mainPanel.add(Box.createVerticalGlue()); // 添加垂直填充，保持组件在中间
        
        setContentPane(mainPanel); // 设置主面板为内容面板
        
        // 添加按钮点击事件，跳转到 QueryOrderForm
        queryOrderButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 显示订单查询界面，而不关闭当前窗口
                new QueryOrderForm().setVisible(true);
            }
        });
        
        // 添加按钮点击事件，跳转到 MaterialOrderForm
        queryMaterialButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 显示物料查询界面，而不关闭当前窗口
                new QueryWarehouseLedgerForm().setVisible(true);
            }
        });
        
        setVisible(true); // 显示窗口
    }
    
    public static void main(String[] args) {
        SwingUtilities.invokeLater(AllPrinting::new); // 启动程序
    }
    
    // 创建带椭圆形样式的按钮
    private JButton createOvalButton(String text) {
        JButton button = new JButton(text) {
            @Override
            protected void paintComponent(Graphics g) {
                Graphics2D g2 = (Graphics2D) g.create();
                g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                g2.setColor(getBackground());
                g2.fillOval(0, 0, getWidth(), getHeight()); // 绘制椭圆形背景
                super.paintComponent(g2);
                g2.dispose();
            }
            
            @Override
            protected void paintBorder(Graphics g) {
                // 自定义边框为椭圆形边框
                Graphics2D g2 = (Graphics2D) g.create();
                g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                g2.setColor(new Color(48, 63, 159)); // 边框颜色
                g2.setStroke(new BasicStroke(3)); // 边框宽度
                g2.drawOval(0, 0, getWidth() - 1, getHeight() - 1); // 绘制椭圆边框
                g2.dispose();
            }
        };
        button.setFont(new Font("微软雅黑", Font.BOLD, 22)); // 设置字体
        button.setBackground(new Color(63, 81, 181)); // 设置按钮背景色
        button.setForeground(Color.WHITE); // 设置按钮文本颜色
        button.setFocusPainted(false); // 去掉焦点边框
        button.setContentAreaFilled(false); // 去掉按钮填充（使按钮透明）
        button.setOpaque(false); // 设置为透明
        button.setBorder(BorderFactory.createEmptyBorder(10, 20, 10, 20)); // 增加按钮内边距
        return button;
    }
}
